#pragma once

#include <vector>

#include "DataStream.h"
#include "Node.h"


namespace skip_list {
    // 辅助跳表序列化存储类
    template<typename K, typename V>
    class SkipListDump : public Serialize {
    public:
        std::vector<K> key_dump_vt_;
        std::vector<V> value_dump_vt_;

        void insert(const Node<K, V> &node);

        SERIALIZE(key_dump_vt_, value_dump_vt_)
    };
}// namespace skip_list


template<typename K, typename V>
void skip_list::SkipListDump<K, V>::insert(const Node<K, V> &node) {
    key_dump_vt_.emplace_back(node.get_key());
    value_dump_vt_.emplace_back(node.get_value());
}